home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 2.toast / pc / sample code / overview / ooptesample / udocument.inc1.p < prev    next >
Encoding:
Text File  |  2000-09-28  |  9.5 KB  |  448 lines

  1. {---------------------------------------------------------------------
  2. #
  3. #    Apple Macintosh Developer Technical Support
  4. #
  5. #    MultiFinder-Aware Simple TextEdit Sample Application
  6. #
  7. #    OOPTESample
  8. #
  9. #    UDocument.inc1.p        -    Pascal Source
  10. #
  11. #    Copyright © 1988, 1989 Apple Computer, Inc.
  12. #    All rights reserved.
  13. #
  14. #    Versions:        
  15. #                    1.00                    04/89
  16. #                    1.10                    02/90
  17. #                    1.11                    10/92
  18. #
  19. #    Components:     
  20. #                    BuildOOPTESample            February 1, 1990
  21. #                    MTESample.p                    February 1, 1990
  22. #                    OOPTESample.make            February 1, 1990
  23. #                    TECommon.h                    February 1, 1990
  24. #                    TESampleGlue.a                February 1, 1990
  25. #                    TESample.r                    February 1, 1990
  26. #                    TMLRules.make                February 1, 1990
  27. #                    UApplication.p                February 1, 1990
  28. #                    UApplication.inc1.p            February 1, 1990
  29. #                    UDocument.p                    February 1, 1990
  30. #                    UDocument.inc1.p            February 1, 1990
  31. #                    UTEDocument.p                February 1, 1990
  32. #                    UTEDocument.inc1.p            February 1, 1990
  33. #                    UTESample.p                    February 1, 1990
  34. #                    UTESample.inc1.p            February 1, 1990
  35. #
  36. ---------------------------------------------------------------------}
  37.  
  38. (********************************************************************************************)
  39. (*        T D o c u m e n t                                                                    *)
  40. (********************************************************************************************)
  41.  
  42. {$S Initialize}
  43. {-----------------------------------+
  44. |    IDocument                        |
  45. +-----------------------------------}
  46. PROCEDURE TDocument.IDocument(resID: integer);
  47. VAR
  48.     aWindow : WindowPtr;
  49. BEGIN
  50.     aWindow := GetNewWindow(resID,NIL,WindowPtr(-1));
  51.     fDocWindow := aWindow;
  52.     SetPort(aWindow);
  53. END;
  54.  
  55. {$S Main}
  56. {-----------------------------------+
  57. |    Free                            |
  58. +-----------------------------------}
  59. PROCEDURE TDocument.Free; OVERRIDE;
  60. BEGIN
  61.     DisposeWindow(fDocWindow);
  62.     INHERITED Free;
  63. END;
  64.  
  65. {$S Main}
  66. {-----------------------------------+
  67. |    DoZoom                            |
  68. +-----------------------------------}
  69. PROCEDURE TDocument.DoZoom(partCode: integer);
  70. BEGIN
  71. END;
  72.  
  73. {$S Main}
  74. {-----------------------------------+
  75. |    DoGrow                            |
  76. +-----------------------------------}
  77. PROCEDURE TDocument.DoGrow(theEvent: EventRecord);
  78. BEGIN
  79. END;
  80.  
  81. {$S Main}
  82. {-----------------------------------+
  83. |    DoContent                        |
  84. +-----------------------------------}
  85. PROCEDURE TDocument.DoContent(theEvent: EventRecord);
  86. BEGIN
  87. END;
  88.  
  89. {$S Main}
  90. {-----------------------------------+
  91. |    DoKeyDown                        |
  92. +-----------------------------------}
  93. PROCEDURE TDocument.DoKeyDown(theEvent: EventRecord);
  94. BEGIN
  95. END;
  96.  
  97. {$S Main}
  98. {-----------------------------------+
  99. |    DoActivate                        |
  100. +-----------------------------------}
  101. PROCEDURE TDocument.DoActivate(becomingActive: Boolean);
  102. BEGIN
  103. END;
  104.  
  105. {$S Main}
  106. {-----------------------------------+
  107. |    DoUpdate                        |
  108. +-----------------------------------}
  109. PROCEDURE TDocument.DoUpdate;
  110. BEGIN
  111. END;
  112.  
  113. {$S Main}
  114. {-----------------------------------+
  115. |    DoOpen                            |
  116. +-----------------------------------}
  117. PROCEDURE TDocument.DoOpen;
  118. BEGIN
  119. END;
  120.  
  121. {$S Main}
  122. {-----------------------------------+
  123. |    DoClose                            |
  124. +-----------------------------------}
  125. PROCEDURE TDocument.DoClose;    { By default, we just delete ourself. }
  126. BEGIN
  127.     SELF.Free;
  128. END;
  129.  
  130. {$S Main}
  131. {-----------------------------------+
  132. |    DoSave                            |
  133. +-----------------------------------}
  134. PROCEDURE TDocument.DoSave;
  135. BEGIN
  136. END;
  137.  
  138. {$S Main}
  139. {-----------------------------------+
  140. |    DoSaveAs                        |
  141. +-----------------------------------}
  142. PROCEDURE TDocument.DoSaveAs;
  143. BEGIN
  144. END;
  145.  
  146. {$S Main}
  147. {-----------------------------------+
  148. |    DoRevert                        |
  149. +-----------------------------------}
  150. PROCEDURE TDocument.DoRevert;
  151. BEGIN
  152. END;
  153.  
  154. {$S Main}
  155. {-----------------------------------+
  156. |    DoPrint                            |
  157. +-----------------------------------}
  158. PROCEDURE TDocument.DoPrint;
  159. BEGIN
  160. END;
  161.  
  162. {$S Main}
  163. {-----------------------------------+
  164. |    DoUndo                            |
  165. +-----------------------------------}
  166. PROCEDURE TDocument.DoUndo;
  167. BEGIN
  168. END;
  169.  
  170. {$S Main}
  171. {-----------------------------------+
  172. |    DoCut                            |
  173. +-----------------------------------}
  174. PROCEDURE TDocument.DoCut;
  175. BEGIN
  176. END;
  177.  
  178. {$S Main}
  179. {-----------------------------------+
  180. |    DoCopy                            |
  181. +-----------------------------------}
  182. PROCEDURE TDocument.DoCopy;
  183. BEGIN
  184. END;
  185.  
  186. {$S Main}
  187. {-----------------------------------+
  188. |    DoPaste                            |
  189. +-----------------------------------}
  190. PROCEDURE TDocument.DoPaste;
  191. BEGIN
  192. END;
  193.  
  194. {$S Main}
  195. {-----------------------------------+
  196. |    DoClear                            |
  197. +-----------------------------------}
  198. PROCEDURE TDocument.DoClear;
  199. BEGIN
  200. END;
  201.  
  202. {$S Main}
  203. {-----------------------------------+
  204. |    DoSelectAll                        |
  205. +-----------------------------------}
  206. PROCEDURE TDocument.DoSelectAll;
  207. BEGIN
  208. END;
  209.  
  210. {$S Main}
  211. {-----------------------------------+
  212. |    DoIdle                            |
  213. +-----------------------------------}
  214. PROCEDURE TDocument.DoIdle;
  215. BEGIN
  216. END;
  217.  
  218. {$S Main}
  219. {-----------------------------------+
  220. |    CalcIdle                        |
  221. +-----------------------------------}
  222. FUNCTION TDocument.CalcIdle:Longint;
  223. BEGIN
  224.     CalcIdle := $7FFFFFFF;
  225. END;
  226.  
  227. {$S Main}
  228. {-----------------------------------+
  229. |    AdjustCursor                    |
  230. +-----------------------------------}
  231. PROCEDURE TDocument.AdjustCursor(where: Point); { where is in local coords. }
  232. BEGIN
  233. END;
  234.  
  235. {$S Main}
  236. {-----------------------------------+
  237. |    HaveUndo                        |
  238. +-----------------------------------}
  239. FUNCTION TDocument.HaveUndo: Boolean;
  240. BEGIN
  241.     HaveUndo := FALSE;
  242. END;
  243.  
  244. {$S Main}
  245. {-----------------------------------+
  246. |    HaveSelection                    |
  247. +-----------------------------------}
  248. FUNCTION TDocument.HaveSelection: Boolean;
  249. BEGIN
  250.     HaveSelection := FALSE;
  251. END;
  252.  
  253. {$S Main}
  254. {-----------------------------------+
  255. |    HavePaste                        |
  256. +-----------------------------------}
  257. FUNCTION TDocument.HavePaste: Boolean;
  258. BEGIN
  259.     HavePaste := FALSE;
  260. END;
  261.  
  262. {$S Main}
  263. {-----------------------------------+
  264. |    CanClose                        |
  265. +-----------------------------------}
  266. FUNCTION TDocument.CanClose: Boolean;
  267. BEGIN
  268.     CanClose := TRUE;
  269. END;
  270.  
  271. {$S Main}
  272. {-----------------------------------+
  273. |    CanSave                            |
  274. +-----------------------------------}
  275. FUNCTION TDocument.CanSave: Boolean;
  276. BEGIN
  277.     CanSave := FALSE;
  278. END;
  279.  
  280. {$S Main}
  281. {-----------------------------------+
  282. |    CanSaveAs                        |
  283. +-----------------------------------}
  284. FUNCTION TDocument.CanSaveAs: Boolean;
  285. BEGIN
  286.     CanSaveAs := TRUE;
  287. END;
  288.  
  289. {$S Main}
  290. {-----------------------------------+
  291. |    CanRevert                        |
  292. +-----------------------------------}
  293. FUNCTION TDocument.CanRevert: Boolean;
  294. BEGIN
  295.     CanRevert := FALSE;
  296. END;
  297.  
  298. {$S Main}
  299. {-----------------------------------+
  300. |    CanPrint                        |
  301. +-----------------------------------}
  302. FUNCTION TDocument.CanPrint: Boolean;
  303. BEGIN
  304.     CanPrint := FALSE;
  305. END;
  306.  
  307. {$S Main}
  308. {-----------------------------------+
  309. |    GetDocWindow                    |
  310. +-----------------------------------}
  311. FUNCTION TDocument.GetDocWindow: WindowPtr;
  312. BEGIN
  313.     GetDocWindow := fDocWindow;
  314. END;
  315.  
  316. (********************************************************************************************)
  317. (*        T D o c u m e n t L i n k                                                            *)
  318. (********************************************************************************************)
  319.  
  320. {$S Initialize}
  321. {-----------------------------------+
  322. |    IDocumentLink                    |
  323. +-----------------------------------}
  324. PROCEDURE TDocumentLink.IDocumentLink(n:TDocumentLink; v:TDocument);
  325. BEGIN
  326.     fNext := n;
  327.     fDoc := v;
  328. END;
  329.  
  330. {$S Main}
  331. {-----------------------------------+
  332. |    GetNext                            |
  333. +-----------------------------------}
  334. FUNCTION TDocumentLink.GetNext:TDocumentLink;
  335. BEGIN
  336.     GetNext := fNext;
  337. END;
  338.  
  339. {$S Main}
  340. {-----------------------------------+
  341. |    GetDoc                            |
  342. +-----------------------------------}
  343. FUNCTION TDocumentLink.GetDoc: TDocument;
  344. BEGIN
  345.     GetDoc := fDoc;
  346. END;
  347.  
  348. {$S Main}
  349. {-----------------------------------+
  350. |    SetNext                            |
  351. +-----------------------------------}
  352. PROCEDURE TDocumentLink.SetNext(aLink:TDocumentLink);
  353. BEGIN
  354.     fNext := aLink;
  355. END;
  356.  
  357. {$S Main}
  358. {-----------------------------------+
  359. |    SetDoc                            |
  360. +-----------------------------------}
  361. PROCEDURE TDocumentLink.SetDoc(aDoc:TDocument);
  362. BEGIN
  363.     fDoc := aDoc;
  364. END;
  365.  
  366. (********************************************************************************************)
  367. (*        T D o c u m e n t L i s t                                                            *)
  368. (********************************************************************************************)
  369.  
  370. {$S Initialize}
  371. {-----------------------------------+
  372. |    IDocumentList                    |
  373. +-----------------------------------}
  374. PROCEDURE TDocumentList.IDocumentList;
  375. BEGIN
  376.     fDocList := NIL;
  377.     fNumDocs := 0;
  378. END;
  379.  
  380. {$S Initialize}
  381. {-----------------------------------+
  382. |    AddDoc                            |
  383. +-----------------------------------}
  384. PROCEDURE TDocumentList.AddDoc(doc:TDocument);
  385. VAR
  386.     temp: TDocumentLink;
  387. BEGIN
  388.     NEW(temp);
  389.     temp.IDocumentLink(fDocList,doc);
  390.     fDocList := temp;
  391.     fNumDocs := fNumDocs+1;
  392. END;
  393.  
  394. {$S Main}
  395. {-----------------------------------+
  396. |    RemoveDoc                        |
  397. +-----------------------------------}
  398. PROCEDURE TDocumentList.RemoveDoc(doc:TDocument);
  399. VAR
  400.     temp, last: TDocumentLink;
  401. BEGIN
  402.     last := NIL;
  403.     temp := fDocList;
  404.     WHILE (temp <> NIL) DO BEGIN
  405.         IF (temp.GetDoc = doc) THEN BEGIN
  406.             IF (last = NIL) THEN BEGIN
  407.                 fDocList := temp.GetNext;
  408.             END ELSE BEGIN
  409.                 last.SetNext(temp.GetNext);
  410.             END;
  411.             temp.Free;
  412.             fNumDocs := fNumDocs - 1;
  413.             EXIT(RemoveDoc);
  414.         END ELSE BEGIN
  415.             last := temp;
  416.         END;
  417.         temp := temp.GetNext;
  418.     END;
  419. END;
  420.  
  421. {$S Main}
  422. {-----------------------------------+
  423. |    FindDoc                            |
  424. +-----------------------------------}
  425. FUNCTION TDocumentList.FindDoc(window:WindowPtr): TDocument;
  426. VAR
  427.     temp: TDocumentLink;
  428.     tDoc: TDocument;
  429. BEGIN
  430.     FindDoc := NIL;
  431.     temp := fDocList;
  432.     WHILE (temp <> NIL) DO BEGIN
  433.         tDoc := temp.Getdoc;
  434.         IF (tDoc.GetDocWindow = window) THEN
  435.             FindDoc := tDoc;
  436.         temp := temp.GetNext;
  437.     END;
  438. END;
  439.  
  440. {$S Main}
  441. {-----------------------------------+
  442. |    NumDocs                            |
  443. +-----------------------------------}
  444. FUNCTION TDocumentList.NumDocs:integer;
  445. BEGIN
  446.     NumDocs := fNumDocs;
  447. END;
  448.